<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>async await</title>
</head>

<body>
  <script>
    // async await
    async function fn() {
      // 1.如果你返回的是非Promise对象, 那么返回结果就是一个状态为成功且返回值为这个值的Promise对象
      // return "小陈有话说"; // Promise: { PromiseState: "fulfilled" PromiseResult: "小陈有话说" }
      // return 9999; // Promise: { PromiseState: "fulfilled" PromiseResult: 9999 }

      // 2.抛出错误
      // throw "出错了"; // Promise: { PromiseState: "rejected" PromiseResult: "出错了" }

      // 3.如果你返回的是Promise: 那就看情况而定 你调用resolve()就是成功的 你调用reject()就是失败的 返回值就是这个Promise的返回值
      return new Promise((resolve, reject) => {
        // resolve("我是成功的"); // Promise: { PromiseState: "fulfilled" PromiseResult: "我是成功的" }
        reject("我是失败的"); // Promise: { PromiseState: "rejected" PromiseResult: "我是失败的" }
      })

      // 4.如果不返回那么默认函数返回值就是 undefined 状态也是成功的 返回值就是 undefined
    }

    const res = fn();
    console.log(res);
  </script>
</body>

</html>